import storage from '@/utils/storage.js'
import { APP_CONFIG } from '@/store/mutation-types.js'
import { queryMiniProgramInfo } from '@/api/index.js'
import { headerParams } from '@/config/headerParams.js'

export const state = {
  appConfig: {
    is_ad: undefined,// 是否审核 1=审核 2=未审核(number)
    is_ireg: undefined,// 是否允许ios支付 1=允许 2=不允许(number)
    return: undefined,// 是否回调 1=回调 2=不回调(number)
    name: undefined,// 小程序名称
    privacy_url: undefined, // 用户协议h5地址
		episode_price_switch: undefined, // 支付弹出层-剧集价格开关
		quit_box_switch: undefined, // 退出时加入追剧  0-关 1-开
		quit_box_btn: undefined, // 退出时加入追剧-按钮文案
		quit_box_content: undefined, // 退出时加入追剧-弹窗内容
		quit_box_title: undefined, // 退出时加入追剧-弹窗标题
  }
}
export const mutations = {
  SET_APP_CONFIG: (state, value) => {
    state.appConfig = value
  },
}

export const actions = {
  SetAppConfig({
    commit,
    state
  }) {
    return new Promise((resolve, reject) => {
      const { static_pid } = headerParams
		  queryMiniProgramInfo({ mid: static_pid }).then(data => {
		    commit('SET_APP_CONFIG', data)
		    storage.set(APP_CONFIG, data)
        resolve(data)
		  })
    })
		
    
  },
}

export const getters = {
  getAppConfig(state) {
    // 在各种跳转路由的过程中，state中的数据不会消失。但是一旦浏览器刷新页面，state的数据就会被再次默认初始化
    // getters估计也用不到，因为每次进入小程序，在App.vue会给appConfig变量赋值
    if (state.appConfig) {
      return state.appConfig
    } else if (storage.get(APP_CONFIG)) {
      return storage.get(APP_CONFIG)
    }
    return {}
  }
}
